package medium

/*
时间复杂度:O(N)
空间复杂度:O(1)

解决恰好==k的情况，就在内层循环控制条件为 for count >=k 然后在循环内处理==k的情况
*/


func numberOfSubarrays(nums []int, k int) int {
	left, right := 0, 0
	ans := 0
	count := 0
	for right < len(nums) {
		if nums[right] & 1 == 1 {
			count++
		}
		for count >= k {
			if count == k {
				ans++
			}
			if nums[left] & 1 == 1 {
				count--
			}
			left++
		}
		right++
	}
	return ans
}